package com.homedo.async.mysql.support.mapper.select;

import com.homedo.async.common.dto.Pagination;
import com.homedo.async.mysql.support.dataobject.Example;
import com.homedo.async.mysql.support.mapper.MapperI;
import io.vertx.sqlclient.SqlConnection;
import reactor.core.publisher.Flux;

/**
 * @author jgshun
 * @date 2020/3/17 10:30 AM
 */
public interface SelectMapperExampleI<T, ID> extends MapperI<T, ID> {

    Flux<T> findByExample(Example example);

    Flux<T> findByExample(Example example, SqlConnection connection);

    Flux<T> findByExample(Example example, Pagination<T> pagination);

    Flux<T> findByExample(Example example, Pagination<T> pagination, SqlConnection connection);

}
